package com.goods.business.service;

import com.goods.common.model.business.Product;
import com.goods.common.vo.business.ProductStockVO;
import com.goods.common.vo.business.ProductVO;
import com.goods.common.vo.system.PageVO;

import java.util.List;
import java.util.Map;

public interface ProductService {

    /**
     * 物资资料分页列表
     */
    PageVO<ProductVO> findProductList(int pageNum, int pageSize, String name, Integer categoryId, Integer status);

    /**
     * 添加物资
     * @param productVO
     * @return
     */
    void add(ProductVO productVO);

    /**
     * 回显数据
     * @param id
     * @return
     */
    Product edit(Long id);

    /**
     * 放入回收站
     * @param id
     * @return
     */
    void remove(Long id);

    /**
     * 恢复回收站
     * @param id
     * @return
     */
    void back(Long id);

    /**
     * 删除回收站
     * @param id
     * @return
     */
    void delete(Long id);


    /**
     * 查询所有物资
     */
    PageVO<ProductStockVO> findProducts(int pageNum, int pageSize, Integer status);

    /**
     * 物资库存图
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageVO<ProductStockVO> findProductStocks(int pageNum, int pageSize);

    /**
     * 获取所有库存
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<Map<String, Object>> findAllStocks(int pageNum, int pageSize);
}
